a:=0-4;

c:=6;
cexpected := 6;

x := [1,2,3,[4,5,6],7,8];
xexpected := [1,2,3,[4,5,6],7,8];

y := [9,10];
yexpected := [9,10];

za := cons(4, [9]);
zaexpected := [4, 9];

z := cons (8, y);
zexpected := [8,9,10];

w := cons (99, cons (1, [2,3,4]));
wexpected := [99,1,2,3,4];

u := cons(1, cons(2, cons(3, [])));
uexpected := [1,2,3];

t:=[];
texpected := [];

s:=cons([[]], y);
sexpected := [[[]],9,10];

r := car([1,2,3]);
q := car([[1,2,3], 4, 5]);
p := car(y);
o := car(cons(200, q));
rexpected := 1;
qexpected := [1,2,3];
pexpected := 9;
oexpected := 200;

n := cdr(y);
m := cdr(n);
l := cdr([7, 8, 9]);
nexpected := [10];
mexpected := [];
lexpected := [8,9];

k := nullp(t);
kexpected := 1;
j := nullp([1,2,3]);
jexpected := 0;

i := intp(l);
iexpected := 0;
h := intp(5);
hexpected := 1;
hh:= intp(c);
hhexpected := 1;

gg:= listp(c);
ggexpected := 0;
gf:= listp(y);
gfexpected := 1;
g := listp(l);
gexpected := 1;
f := listp(5);
fexpected := 0;
e := listp([1,2,3]);
eexpected := 1;

aa := [1,2,3] || [4,5];
aaexpected := [1,2,3,4,5];
ab := aa || [6,7,8];
abexpected := [1,2,3,4,5,6,7,8];
ac := aa || ab;
acexpected := [1,2,3,4,5,1,2,3,4,5,6,7,8];
ad := [] || [];
adexpected := [];
ae := [1] || [];
aeexpected := [1];
af := [] || [1];
afexpected := [1];
ag := cdr([7, 8, 9]) || [10];
agexpected := [8,9,10];
ah := [10] || cdr([7, 8, 9]);
ahexpected := [10,8,9];

if a then a:=a else a:=0-a fi;
b := 1;
while a do
b:=b*a;
a:=a-1
od
